package org.hk.springMVC.config;

import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

/**
 * @ClassName: MyBatisConfig
 * @Date: 2025/7/11   23:00
 * @Description: MyBatis配置类
 * @Author: hk
 */


public class MyBatisConfig {


    /**
     * 相当于 MyBatis 配置文件中的 <environments> 和 <mappers> 部分的一部分
     * @param dataSource
     * @return
     */
    @Bean
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);

        //设置别名
        //如果你有一个类 org.hk.springMVC.bean.User，你可以直接使用 User 作为别名来引用它，而不需要写完整的包路径
        sqlSessionFactoryBean.setTypeAliasesPackage("org.hk.springMVC.bean");
        return sqlSessionFactoryBean;
    }

    /**
     *对应myBatis-config。xml核心配置文件中：
     <mappers>
     <package name="org.hk.springmvc.dao"/>
     </mappers>
     * @return
     */
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        msc.setBasePackage("org.hk.springMVC.dao");
        return msc;
    }
}